package com.system.manager.modules.authorized.service;

import com.system.manager.common.entity.PageDTO;
import com.system.manager.modules.authorized.entity.AuthenticationResultDTO;
import com.system.manager.modules.authorized.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.system.manager.modules.authorized.vo.LoginUser;
import com.system.manager.modules.authorized.vo.UserVo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yxp
 * @since 2021-10-18
 */
public interface IUserService extends IService<User> {

    /**
     * 用户登陆
     * @param loginUser
     * @return
     */
    AuthenticationResultDTO login(LoginUser loginUser);

    /**
     * 根据用户帐号查找对应的用户信息
     * @param userAccount
     * @return
     */
    public User selectByAccount(String userAccount);
    /**
     * 查询出所有的用户
     * @param currPage
     * @param size
     * @return
     */
    PageDTO<User> selectUsers(Integer currPage, Integer size);

    /**
     * 根据条件查询出对应的用户
     * @param page
     * @param size
     * @param role
     * @param userAccount
     * @param name
     * @param phone
     * @return
     */
    PageDTO<User> selectUsersCondition(Integer page, Integer size, Integer role, String userAccount, String name, String phone);

    /**
     * 新建用户
     * @param user
     */
    User insert(User user);

    /**
     * 根据excl导入文件
     * @param tpWorkbook
     */
    boolean importUser(XSSFWorkbook tpWorkbook);

    /**
     * 修改密码
     * @param oldPassword
     * @param newPassword
     * @param againPassword
     * @return
     */
    boolean updatePassword(String oldPassword, String newPassword, String againPassword, Integer userId);
}
